/*
 * Copyright   2000   The Regents of the University of California
 * All Rights Reserved
 * 
 * Permission to use, copy, modify and distribute any part of Simgrid/SG
 * for educational, research and non-profit purposes, without fee, and
 * without a written agreement is hereby granted, provided that the above
 * copyright notice, this paragraph and the following three paragraphs
 * appear in all copies.
 * 
 * Those desiring to incorporate this Simgrid/SG into commercial
 * products or use for commercial purposes should contact the Technology
 * Transfer & Intellectual Property Services, University of California,
 * San Diego, 9500 Gilman Drive, Mail Code 0910, La Jolla, CA 92093-0910,
 * Ph: (858) 534-5815, FAX: (858) 534-7345, E-MAIL:invent@ucsd.edu.
 * 
 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES,
 * INCLUDING LOST PROFITS, ARISING OUT OF THE USE OF THIS Simgrid/SG,
 * EVEN IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY
 * OF SUCH DAMAGE.  
 * 
 * THE Simgrid/SG PROVIDED HEREIN IS ON AN "AS IS" BASIS, AND THE
 * UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
 * SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.  THE UNIVERSITY OF
 * CALIFORNIA MAKES NO REPRESENTATIONS AND EXTENDS NO WARRANTIES OF ANY
 * KIND, EITHER IMPLIED OR EXPRESS, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR
 * PURPOSE, OR THAT THE USE OF THE Simgrid/SG WILL NOT INFRINGE ANY
 * PATENT, TRADEMARK OR OTHER RIGHTS.
 */

#ifndef TCP_TYPES_H
#define TCP_TYPES_H

#include "sg_types.h"

typedef struct _tcp_link_data_t *tcp_link_data_t;

typedef struct _tcp_route_data_t *tcp_route_data_t;

struct _tcp_link_data_t {
  long double max_bw;
  long double bw;
  long double lat;
  long double u;
  long double alpha;
  int is_special_link;
  int l_allocated;
  int nb_routes_non_allocated;
  TBX_FIFO_t flows;
};

struct _tcp_route_data_t {
  TBX_FIFO_t links;
  SG_Resource special_link;
  long double allocated_bw;
  long double rtt;
  int nb_active_transfers;
  int r_allocated;
}; 


#endif
